.base-image-build:
  extends: .use-kaniko
  variables:
    GIT_LFS_SKIP_SMUDGE: 1  # disable pulling objects from lfs
  retry: 2

.base-image-build-buildx:
  extends: .use-buildx
  variables:
    GIT_LFS_SKIP_SMUDGE: 1  # disable pulling objects from lfs
  retry: 2

# This image is used by:
# - The `review-qa-*` jobs
# - The `e2e:package-and-test` child pipeline test stage jobs
# See https://docs.gitlab.com/ee/development/testing_guide/end_to_end/index.html#testing-code-in-merge-requests for more details.
build-qa-image:
  extends:
    - .base-image-build-buildx
    - .build-images:rules:build-qa-image
  stage: build-images
  needs: []
  script:
    - run_timed_command "scripts/build_qa_image"

build-qa-image as-if-foss:
  extends:
    - build-qa-image
    - .as-if-foss
    - .build-images:rules:build-qa-image-as-if-foss

build-gdk-image:
  extends:
    - .base-image-build-buildx
    - .build-images:rules:build-gdk-image
  tags:
    - high-cpu
  stage: build-images
  needs: []
  script:
    - run_timed_command "scripts/build_gdk_image"

# NOTE: release-tools verifies the presence on this job for a commit that is
# candidate to an auto-deploy package. This job name can't be changed without
# changing the code in release-tools.
build-assets-image:
  extends:
    - .base-image-build
    - .build-images:rules:build-assets-image
  stage: build-images
  needs: ["compile-production-assets"]
  script:
    - skopeo login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - run_timed_command "scripts/build_assets_image"
  artifacts:
    expire_in: 7 days
    paths:
      # The `cached-assets-hash.txt` file is used in `review-build-cng-env` (`.gitlab/ci/review-apps/main.gitlab-ci.yml`)
      # to pass the assets image tag to the CNG downstream pipeline.
      - cached-assets-hash.txt

build-assets-image as-if-foss:
  extends:
    - build-assets-image
    - .as-if-foss
    - .build-images:rules:build-assets-image-as-if-foss
  needs: ["compile-production-assets as-if-foss"]
